/**
 * 选择排序(Selection-sort)是一种简单直观的排序算法。
 * 它的工作原理：首先在未排序序列中找到最小（大）元素，存放到排序序列的起始位置，然后，再从剩余未排序元素中继续寻找最小（大）元素，然后放到已排序序列的末尾。以此类推，直到所有元素均排序完毕
 */

function selectionSort(arr) {
  let len = arr.length;
  let minIndex, temp;
  console.time("选择排序耗时");
  for (var i = 0; i < len - 1; i++) {
    minIndex = i;
    for (var j = i + 1; j < len; j++) {
      if (arr[j] < arr[minIndex]) {
        //寻找最小的数
        minIndex = j; //将最小数的索引保存
      }
    }
    temp = arr[i];
    arr[i] = arr[minIndex];
    arr[minIndex] = temp;
  }
  console.timeEnd("选择排序耗时");
  return arr;
}

var arr = [3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];

console.log(selectionSort(arr));

function test(arr) {
  console.time("2.选择排序耗时");
  for (var i = 0; i < arr.length - 1; i++) {
    let min = i;
    for (var j = i + 1; j < arr.length; j++) {
      if (arr[j] < arr[min]) {
        min = j;
      }
    }
    // let temp = arr[i];
    // arr[i] = arr[min];
    // arr[min] = temp;
    [arr[min], arr[i]] = [arr[i], arr[min]];
  }
  console.timeEnd("2.选择排序耗时");
  return arr;
}

console.log(test(arr));
